c# 枚举定义前的[Flags]是什么意思?
来源:百度知道 编辑:UC知道 时间:2024/09/23 05:59:14
Waiting=0x4, TransmitOK=0x8,
RecieveOK=0x10, OnLine=0x20 }
和直接定义这个枚举对象 有什么区别?
这种用处很大,比如权限、执行状态等,都可以用一个int型保存到数据库中,C#中使用枚举可以处理这个问题。
[Flags]
public enum Permission
{
create = 1,
read = 2,
update = 4,
delete = 8,
}
在数据库中判断:
AND (@permission IS NULL OR @permission=0 OR permission &@permission =@permission)
加个属性是程序集的说明信息
设置一个变量flag,是一个来表示判断的变量,当做标志
class FlagsAttributeDemo
{
// Define an Enum without FlagsAttribute.
enum SingleHue : short
{
Black = 0,
Red = 1,
Green = 2,
Blue = 4
};
// Define an Enum with FlagsAttribute.
[FlagsAttribute]
enum MultiHue : short
{
Black = 0,
Red = 1,
Green = 2,
Blue = 4
};
static void Main( )
{
Console.WriteLine(
"This example of the FlagsAttribute